#ifndef PAINTTOOL_H
#define PAINTTOOL_H

#include <QMouseEvent>

class QGraphicsSceneMouseEvent;
class PaintView;
class PaintScene;

class PaintTool
{
public:
    PaintTool();
    virtual ~PaintTool();
    virtual QString displayText();
    virtual QString infoText();
    virtual QString toolKey();
    friend class PaintView;
    friend class PaintScene;

    enum MouseActivity
    {
        MousePressed,
        MouseReleased,
        MouseMove
    };

protected:
    virtual void mouseReleased(QGraphicsSceneMouseEvent *);
    virtual void mousePressed(QGraphicsSceneMouseEvent *);
    virtual void mouseMoved(QGraphicsSceneMouseEvent *);
    void recordMouseActivity(QGraphicsSceneMouseEvent *, MouseActivity);

    int downX;
    int downY;
    int curX;
    int curY;
    int upX;
    int upY;

    bool mouseDown;

};

#endif // PAINTTOOL_H
